﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Text;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

public partial class SolicitudesPractica_PerfilesPracticante_CrearPerfilPracticante : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //-------------------------Lineas Agregadas para la seguridad----------------------------------------------------
        if (Session["nit"] != null)
        { }//   Response.Redirect("/SUEWebSite/Error.aspx");

        else if (Session["nomUsr"] != null)
        {
            List<String> Permisos = (List<String>)Session["Permisos"];

            if (!Permisos.Contains(System.IO.Path.GetFileName(HttpContext.Current.Request.FilePath)))
                Response.Redirect("/SUEWebSite/Error.aspx");

        }
        else Response.Redirect("/SUEWebSite/Principal.aspx");

        //-------------------------Lineas Agregadas para la seguridad----------------------------------------------------

        if (!Page.IsPostBack)
        {
            CargarListaCategorias();
            CargarListaProgramas();
        }
    }

    public void MessageBoxJS(string msg)
    {
        StringBuilder str = new StringBuilder("<script languaje = JavaScript>");
        str.Append("alert('" + msg + "');");
        str.Append("</script>");
        Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "PopUpScript", str.ToString());

    }

    protected void CargarListaProgramas()
    {
        Programa tmp = new Programa();
        List<Programa> listcat = tmp.consultarProgramas();
        foreach (Programa programa in listcat)
            DropDownListPrograma.Items.Add(programa.ObtNombre());
    }

    protected void CargarListaCategorias()
    {
        ListBoxCategorias.Items.Clear();
        CategoriaCaracteristicas tmp = new CategoriaCaracteristicas();
        List<CategoriaCaracteristicas> listcat = tmp.ObtCategoriasDeCaracteristicas();
        foreach (CategoriaCaracteristicas categoria in listcat)
            ListBoxCategorias.Items.Add(categoria.ObtNombreCategoria());
    }

    protected void CargarListaCaracteristicasDeCategoria()
    {
        ListBoxCaracteristicas.Items.Clear();
        CaracteristicaPerfil tmp = new CaracteristicaPerfil();
        List<CaracteristicaPerfil> listcat = tmp.ObtCaracteristicasDePerfil();
        foreach (CaracteristicaPerfil caracteristica in listcat)
            if (caracteristica.ObtCategoriaDeCaracteristica() == ListBoxCategorias.SelectedValue)
                ListBoxCaracteristicas.Items.Add(caracteristica.ObtNombreCaracteristica());
    }

    protected void ListBoxCategorias_SelectedIndexChanged(object sender, EventArgs e)
    {
        CargarListaCaracteristicasDeCategoria();
    }

    protected void ButtonAdicionarCaracteristica_Click(object sender, EventArgs e)
    {
        if (ListBoxCategorias.SelectedValue != "")
        {
            if (ListBoxCaracteristicas.SelectedValue != "")
            {
                //Primero se adiciona una por una las caracteristicas...
                //Falta validar si ya esta la caracteristica en la lista.
                bool existe = false;
                foreach (ListItem item in ListBoxCaraPerfil.Items)
                    if (item.Value == ListBoxCaracteristicas.SelectedValue)
                        existe = true;
                if (existe == false)
                    ListBoxCaraPerfil.Items.Add(ListBoxCaracteristicas.SelectedValue);
                else
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.success('Ya contiene esa característica', {timeout: 2 , showClose: false });", true);
                    //MessageBoxJS("Ya se a agregado esa caracteristica");
            }
            else
                ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.success('No ha seleccionado ninguna característica', {timeout: 2 , showClose: false });", true);
        }
        else
            ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.success('No ha seleccionado ninguna categoría', {timeout: 2 , showClose: false });", true);
    }
    protected void ButtonEliminarCaracteristicaPerfil_Click(object sender, EventArgs e)
    {
        if (ListBoxCaraPerfil.SelectedValue != "")
        {
            ListBoxCaraPerfil.Items.Remove(ListBoxCaraPerfil.SelectedValue);
        }
        else
            ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.success('No ha seleccionado ninguna de las características del perfil', {timeout: 2 , showClose: false });", true);
    }
    protected void ButtonCrearPerfil_Click(object sender, EventArgs e)
    {
        string idSolicitudPractica=Request.QueryString["idSolicitudPractica"];
        if (idSolicitudPractica != "")
        {
            SolicitudPractica tmp = new SolicitudPractica();
            tmp.AsigIdSolicitudPractica(Convert.ToInt32(Request.QueryString["idSolicitudPractica"]));
            if (tmp.ExisteIdSolicitud())
            {
                PerfilPracticante nuevoPerfil = new PerfilPracticante("", idSolicitudPractica,DropDownListPrograma.SelectedValue, TextBoxDescripcion.Text);
                String guardar=nuevoPerfil.GuardarPerfil();
                string idPerfilPracticante = nuevoPerfil.ExistePerfil();
                
                //Como los idPerfilPracticante son asignados por la base de datos, tengo que buscar
                //cual fue el idPerfilPracticante con que lo guardo y asignarselo a nuevoPerfil.
                if (idPerfilPracticante != "")
                {
                    nuevoPerfil.AsigIdPerfilPracticante(idPerfilPracticante);
                    nuevoPerfil.AsignarCaracteristicasAlPerfil(ListBoxCaraPerfil);
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.success('El perfil ha sido agregado con éxito <br /><div align=\"center\"><a href=\"../FormEditarSolicitud.aspx?idSolicitudPractica="+idSolicitudPractica+"\"><img src=\"../../images/ok2.png\"/></a></div>');", true);
                    //Response.Redirect("../FormEditarSolicitud.aspx?idSolicitudPractica="+idSolicitudPractica);
                }
            }
            //Mostrar mensaje de diciendo que no existe la solicitud.
        }
        //Mostrar mensaje diciendo que no se llevo la idSolicitudPractica por parametro.
    }
    protected void ButtonCancelar_Click(object sender, EventArgs e)
    {
        string idSolicitudPractica = Request.QueryString["idSolicitudPractica"];
        Response.Redirect("../FormEditarSolicitud.aspx?idSolicitudPractica=" + idSolicitudPractica);
    }
}
